var $callRecordsTable = $('#callRecords');//通话记录
var $moreCallTable = $('#moreCall');//更多通话
var userid;//用户id

$(function(){
    dateType = $("#dateType").val();//日期类型 按天、按周、按月
    formId = $("#formId").val(); //表单id
    contactId = $("#contactId").val(); //联系人ID
    bs = $("#bs").val(); //标识 0-管理，1-用户
    userData(formId,contactId);//请求用户信息
    callRecordsInit();//通话记录表格
    moreCallTableInit();//更多通话记录
})



//请求用户信息
function userData(formId,contactId){
    $.ajax({
        url:'/callForm/selectCallFormDetails',
        type: 'GET',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data:{
            contactId:contactId,formId:formId
        },
        success:(function(result){
            if(result.code == '000000'){
                var data = result.data
                $('#userName').text(data.contactName);//用户名称
                $('#company').text(data.customerName);//客户公司名称
                $('#userImg').attr('src', data.contactPhoto);//图片
                $('#heatingValue').text(data.thermodynamicValue);//热力值
            }
        }),
        error: (function (res) {
            $.alert("加载失败");
        })
    })
}

//防止表头与表格不对齐
$(window).resize(function () {
    $callRecordsTable.bootstrapTable('resetView');
    $moreCallTable.bootstrapTable('resetView');
});

/**
 * 通话记录表格
 */
function callRecordsInit() {
    //先销毁表格
    $callRecordsTable.bootstrapTable('destroy');
    $callRecordsTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/callForm/selectCallFormDetails',//请求地址
        method: 'get',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: false,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'formId',
        idField: 'formId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",//可供选择的每页的行数
        fixedColumns: true,     // 冻结列
        fixedNumber: 4,         // 左侧固定列
        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'formId',visible: false},
            {title: '联系人id', field: 'contactPersonId',visible: false},
            {title: '时间', field: 'createTm',align: 'left', valign: 'middle'},
            {title: '通话时长(秒)', field: 'callDuration', align: 'left', valign: 'middle'},
            {title: '通话结果', field: 'callResult', align: 'left', valign: 'middle',formatter: callResultFormat},
            {title: '通话录音', field: 'callRecord', align: 'left', valign: 'middle',formatter: callRecordingFormat},
            {title: '标记', field: 'sign', align: 'left', valign: 'middle',formatter: signFormat},
            {title: '操作', field: 'operate', align: 'right', events: operateEvents, formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var data = [];
                data.push(result.data)
                var obj = {
                    "rows": data,
                    "total": 1//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    })
}

/**
 * 更多通话记录
 */
function moreCallTableInit() {
    //先销毁表格
    $moreCallTable.bootstrapTable('destroy');
    $moreCallTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/callForm/selectCallDetailsList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'formId',
        idField: 'formId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",//可供选择的每页的行数
        fixedColumns: true,     // 冻结列
        fixedNumber: 4,         // 左侧固定列
        queryParams: callQueryParams,//查询参数
        columns: [
            {title: '主键', field: 'formId', visible: false},
            {title: '联系人id', field: 'contactPersonId', visible: false},
            {title: '是否有意向', field: 'isInterested', visible: false},
            {title: '是否产生话术', field: 'isWordArt', visible: false},
            {title: '恶意回复', field: 'isSpiteCall', visible: false},
            {title: '投诉电话', field: 'isComplaintsCall', visible: false},
            {title: '优秀电话', field: 'isGoodCall', visible: false},
            {title: '通话警告', field: 'isWarnCall', visible: false},
            {title: '时间', field: 'createTm',sortable: true,  align: 'left', valign: 'middle'},
            {title: '通话时长(秒)', field: 'callDuration', align: 'left', valign: 'middle'},
            {title: '通话结果', field: 'callResult', align: 'left', valign: 'middle',formatter: callResultFormat},
            {title: '通话录音', field: 'callRecord', align: 'left', valign: 'middle',formatter: callRecordingFormat},
            {title: '标记', field: 'sign', align: 'left', valign: 'middle',formatter: signFormat},
            {title: '操作', field: 'operate', align: 'right', events: operateEvents, formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total":  result.totalRecords///总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    })
}

/**
 * 普通查询参数-通话记录
 */
function queryParams(params){
        params.contactId = contactId;//用户id
        params.formId = formId;//表单id
      return params
}
/**
 * 普通查询参数-更多通话记录
 */
function callQueryParams(params){
    params.pageIndex = (params.offset / params.limit) + 1;//页码
    params.pageSize = params.limit;//每页条数
    params.sortName = params.sort;//排序列命
    params.sortOrder = params.order;//排序规则
    params.formId = formId;//表单id
    params.contactPersonId = contactId;//联系人id
    params.bs = bs;  //0管理端 1用户端
    params.dateType = dateType//日期类型
    return params
}

/**
 * 通话记录判断
 */
function callResultFormat(value, row, index){
    if(value == '1'){
        return "<span class='label label-success-light'>接听</span>";
    }
    if(value == '2'){
        return "<span class='label label-danger-light'>拒绝</span>";
    }
}

/**
 * 标记
 */
function signFormat(value, row, index){
    var html = '';
    if(row.isInterested == 1){
       html += '<span class="label label-info-light">无意向</span>';
    }
    if(row.isInterested == 2){
       html += '<span class="label label-success-light">有意向</span>';
    }
    if(row.isWordArt == 2){
       html += '<span class="label label-danger-light">产生话术</span>';
    }
    if(row.isSpiteCall == 2){
       html += '<span class="label label-brown-light">恶意回复</span>';
    }
    if(row.isComplaintsCall == 2){
       html += '<span class="label label-yellow-light">投诉电话</span>';
    }
    if(row.isGoodCall == 2){
       html += '<span class="label label-success-light">优秀电话</span>';
    }
    if(row.isWarnCall == 2){
       html += '<span class="label label-warning-light">警告电话</span>';
    }

    return html;
}

/**
 * 通话录音
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function callRecordingFormat(value, row, index){
    return `<audio src=${value} controls=\"controls\">`
}

/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index){
    return [
        '<button type="button" class="btn btn-default" id="">转成文字</button>',
        '<button type="button" class="btn btn-default" id="">抽取标签</button>',
        '<button type="button" class="btn btn-default" id="">生成话术</button>',
        '<button type="button" class="btn btn-default" id="">优秀通话</button>',

        /*'<a type="button" id="detail" class="btn btn-xs btn-default m-r-5 show-btn" title="转成文字" data-toggle="tooltip">转成文字</a>',
        '<a type="button" id="detail" class="btn btn-xs btn-default m-r-5 show-btn" title="抽取标签" data-toggle="tooltip">抽取标签</a>',
        '<a type="button" id="sign" class="btn btn-xs btn-default m-r-5 show-btn" title="生成话术" data-toggle="tooltip">生成话术</a>',
        '<a type="button" id="screen" class="btn btn-xs btn-default m-r-5 show-btn" title="优秀通话" data-toggle="tooltip">优秀通话</a>'*/
    ].join('');
}

window.operateEvents = {

}